#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//int main() {
//	int x = 3;
//	int y = 1;
//	switch (x % 2) {
//	case 1:
//		switch (y)
//		{
//		case 0:
//			printf("first");
//		case 1:
//			printf("second");
//			break;
//		default: printf("hello");
//		}
//	case 2:
//		printf("third");
//	}
//	return 0;
//}

//

//#include <stdio.h>
//
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= 9; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%d ", j, i, j * i);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//#include <stdio.h>
// 
//int main()
//{
//	float i = 0.0f;
//	float sum = 0.0f;
//	int flag = 1;
//	for (i = 1.0; i <= 100; i++)
//	{
//		sum += 1 / i*flag;
//		flag *= -1;
//	}
//	printf("%f\n", sum);
//	return 0;
//}

#include <stdio.h>

//int main()
//{
//	int i = 0;
//	int cnt = 0;
//	int a = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		a = i;
//		while (a)
//		{
//			if (a % 10 == 9)
//			{
//				cnt++;
//			}
//			a /= 10;
//		}
//	}
//	printf("%d\n", cnt);
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//	int i = 0;
//	for (i = 1000; i <= 2000; i++)
//	{
//		if (i % 4 == 0 && i % 100 != 0)
//		{
//			printf("%d ", i);
//		}
//		else if (i % 400 == 0)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d", &a, &b);
	if (b > a)
	{
		c = a;
		a = b;
		b = c;
	}
	while (a % b != 0)
	{
		c = a;
		a = b;
		b = c % b;
	}
	printf("%d\n", b);
	return 0;
}